package com.ruoyi.common.utils;


import com.ruoyi.common.enums.RandomType;

import java.util.Random;

/**
 * 编码规则生成器
 *
 * @author zhanglijuan
 */
public class CodeGenerateUtils {

    private static CodeGenerateUtils codeGenerateUtils = null;

    private CodeGenerateUtils() {
    }

    /**
     * 取得CodeGenerateUtils的单例实现
     *
     * @return
     */
    public static CodeGenerateUtils getInstance() {
        if (codeGenerateUtils == null) {
            synchronized (CodeGenerateUtils.class) {
                if (codeGenerateUtils == null) {
                    codeGenerateUtils = new CodeGenerateUtils();
                }
            }
        }
        return codeGenerateUtils;
    }

    /**
     * 租户编码生成方法
     *
     * @return 租户编码
     */
    public static String tenantCodeGenerate() {
        return StringUtils.random(10, RandomType.STRING);
    }

    /**
     * 统一身份认证标识生成方法
     *
     * @return  统一身份认证标识
     */
    public static String netIdGenerate(){
        return StringUtils.random(8, RandomType.ALL);
    }

    /**
     * 数据源编码生成方法
     *
     * @return 数据源编码
     */
    public static String datasourceCodeGenerate() {
        return StringUtils.random(6, RandomType.ALL);
    }

    /**
     * 生成短信验证码
     *
     * @return 短信验证码
     */
    public static String verifyCode() {
        return String.valueOf(new Random().nextInt(899999) + 100000);
    }

    /**
     * 邀请码生成方法
     *
     * @return 邀请码
     */
    public static String invitationCodeGenerate() {
        return StringUtils.random(8, RandomType.ALL);
    }

}
